package com.project.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.StudentBean;
import com.project.service.IStudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@RestController
@RequestMapping("student")
public class StudentController {

    @Autowired
    private IStudentService studentService;

    /**
     * @param name      姓名
     * @param sex       性别
     * @param room      房间
     * @param className 班级
     * @param mf        头像
     * @param phone     手机
     * @throws IOException
     */
    @RequestMapping("add")
    public String add(String name, @RequestParam("faceImg") MultipartFile mf, String sex, Integer className, Integer room, String phone) throws IOException {
        System.out.println(name);
        String faceImg = mf.getOriginalFilename();
        if (!name.equals("") & !sex.equals("") & !phone.equals("")) {
            StudentBean studentBean = new StudentBean(name, faceImg, sex, className, room, phone);
            studentService.add(studentBean);
            mf.transferTo(new File("/Users/cengyunke/Desktop/studen/src/main/resources/static/studentface/" + faceImg));
            return "添加成功";
        }
        return "学生信息有缺失，请检查";
    }

    /**
     * 查询所有学生对象
     *
     * @param pageNo    页数（默认1）
     * @param name      学生姓名（默认null）
     * @param className 班级名称（默认null）
     * @param address   房间地址（默认null）
     * @return 学生对象集合
     */
    @RequestMapping("findAll")
    public IPage<StudentBean> findAll(int pageNo, String name, String className, String address) {
        return studentService.findByItem(pageNo, name, className, address);
    }

    /**
     * 根据id查询学生对象
     *
     * @param id 学生id
     * @return 指定学生对象
     */
    @RequestMapping("findById")
    public StudentBean findById(int id) {
        return studentService.findById(id);
    }

    /**
     * @param studentId 当前学生id
     * @param roomId    房间id
     */
    @RequestMapping("changeRoom")
    public void changeRoom(int studentId, int roomId) {
        studentService.updateRoom(studentId, roomId);
    }

    /**
     * 根据id删除学生信息，以及学生头像
     *
     * @param id       学生id
     * @param fileName 学生头像的名称
     * @return
     */
    @RequestMapping("del")
    public String del(int id, String fileName) {
        delFile(fileName);
        studentService.del(id);
        return "OK";
    }

    /**
     * 文件删除
     *
     * @param fileName 文件名称
     */
    public void delFile(String fileName) {
        File file = new File("/Users/cengyunke/Desktop/studen/src/main/resources/static/studentface/" + fileName);
        file.delete();
    }
}
